package es.udima.geo.geoserver.persistence;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 * Clase abstracta para proporcionar métodos genéricos a las clases DAO de la
 * aplicación.
 * 
 * @author david
 * 
 */
abstract class GenericDAO {

    /**
     * Unidad de persistencia JPA utilizada en la aplicación.
     */
    private static final String PERSISTENCE_UNIT_NAME = "GeoUdimaServer";

    /**
     * Constructor
     */
    public GenericDAO() {
    }

    /**
     * Crea un entity manager utilizado para las conexiones JPA.
     * 
     * @return EntityManager preparado para ser utilizado.
     */
    protected EntityManager createEntityManager() {
	EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
	EntityManager em = factory.createEntityManager();
	return em;
    }
}
